import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// 引入插件并使用
import vueSetupExtend from 'vite-plugin-vue-setup-extend'
// 自动导入
import AutoImport from 'unplugin-auto-import/vite'
// 自动载入组件
import Components from 'unplugin-vue-components/vite' // 注意引入路径
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
// path
import path from 'path'
function resolvePath(src: string) {
  return path.resolve(__dirname, src)
}

// https://vite.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    vueSetupExtend(),
    AutoImport({
      // 自动导入 Vue 相关函数，如：ref, reactive, toRef 等
      imports: ['vue', 'vue-router'],
      // 可以选择自动导入类型定义文件的位置，默认是根目录下
      dts: 'auto-imports.d.ts',
      // 自动导入ElementPlus
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      // 指定自动导入的组件位置，默认为 'src/components'
      dirs: ['src/components'],
      // 组件名称包含目录，防止同名组件冲突
      directoryAsNamespace: true,
      // 生成 TypeScript 声明文件
      dts: 'components.d.ts',
      // 自动导入ElementPlus
      resolvers: [ElementPlusResolver()],
    }),
  ],
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: `@use "@/styles/common/var.scss" as *;@use "@/styles/common/mixins.scss" as *;`,
      },
    },
  },
  resolve: {
    alias: {
      '@': resolvePath('src'),
    },
  },
})
